package com.ruoyi.business.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 设备对象 course
 *
 * @author 石涛
 * &#064;date  2023-11-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("预约订单")
public class CourseOrders extends BaseEntity {

    /**
     * 预约单id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "预约单id")
    private Long id;

    /**
     * 课程id
     */
    @Excel(name = "课程id")
    @ApiModelProperty(value = "课程id")
    private Long courseId;

    @Excel(name = "课程名称")
    @ApiModelProperty(value = "课程名称")
    private String courseName;

    @Excel(name = "课程预约时间段")
    @ApiModelProperty(value = "课程预约时间段")
    private String times;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    @ApiModelProperty(value = "用户id")
    private Long userId;

    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String userName;

    @Excel(name = "课程开始时间")
    @ApiModelProperty(value = "课程开始时间")
    private String startTime;

    @Excel(name = "课程结束时间")
    @ApiModelProperty(value = "课程结束时间")
    private String endTime;

    /**
     * 预约数量
     */
    @Excel(name = "预约数量")
    @ApiModelProperty(value = "预约数量")
    private Long number;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态", readConverterExp = "0=已预约 1=已开始 2=已结束 3=已取消")
    @ApiModelProperty(value = "订单状态，0=已预约 1=已开始 2=已结束 3=已取消")
    private String status;

    /**
     * 订单类型
     */
    @Excel(name = "订单类型", readConverterExp = "0=约课订单")
    @ApiModelProperty(value = "订单类型，0=约课订单")
    private String type;

    @Excel(name = "会员卡id")
    @ApiModelProperty(value = "会员卡id")
    private Long memberId;

    @Excel(name = "任务id集合")
    @ApiModelProperty(value = "任务id集合")
    private String jobIds;

    @TableField(exist = false)
    @ApiModelProperty(value = "课程信息")
    private Course courseList;

    /**
     * 更新者
     */
    @Getter
    private String createBy;

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    /**
     * 更新者
     */
    @Getter
    private String updateBy;

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }
}
